<!--注意id属性每个页面id必须独立，lay-title为当前页面的标题属性-->
<div class="layui-fluid layui-anim febs-anim" id="hr-staff" lay-title="员工标签">
    <div class="layui-row febs-container">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-body febs-table-full">
                    <!--注意lay-filter属性，该属性为form表单唯一属性-->
                    <form class="layui-form layui-table-form" lay-filter="staff-table-form">
                        <!--fieldset为区分搜索区域-->
                        <fieldset class="layui-elem-field layui-field-title" style="margin-top: 10px;">
                            <legend style="font-size: 15px; font-weight: bolder;"></legend>
                        </fieldset>
                        <div class="layui-row">
                            <!-- 查询信息 -->
                            <div class="layui-col-md11">
                                <!-- layui-form-item为自适应长度样式 -->
                                <div class="layui-form-item">
                                    <!-- layui-inline样式为单行多控件 -->
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">员工姓名</label>
                                        <div class="layui-input-inline">
                                            <!-- 注意name属性于定义的实体类属性一致，placeholder设置提示用语-->
                                            <!-- maxlength设置最大长度-->
                                            <input type="text" name="name" autocomplete="off" class="layui-input"
                                                   placeholder="请输入姓名" minlength="0" maxlength="20">
                                        </div>
                                    </div>
                                </div>
                            </div>

                            <!-- 查询重置按钮 -->
                            <!-- 注意id属性 用于绑定JS事件-->
                            <div class="layui-col-md1 layui-col-sm12 layui-col-xs12 table-action-area">
                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain
                                            table-action" id="hr-staff-query-btn">
                                    <i class="layui-icon">&#xe848;</i>
                                </div>
                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain
                                            table-action" id="hr-staff-reset-btn">
                                    <i class="layui-icon">&#xe79b;</i>
                                </div>
                            </div>
                        </div>
                    </form>

                    <!-- 表格 -->
                    <!-- 注意lay-filter和id属性，两者需保持一致 用于绑定JS事件-->
                    <table lay-filter="hr-staff-staff-table"
                           lay-data="{id: 'hr-staff-staff-table'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- 列表头部工具栏 -->
<!-- 注意id属性，列表初始化的时候加载列表头部工具栏-->
<script type="text/html" id="hr-staff-staff-toolbar">
    <div class="layui-row" id="hr-staff-staff-sync">
        <!-- 注意id属性，用于绑定JS事件-->
        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain
                                            table-action" id="hr-staff-fetch-btn">
            <i class="layui-icon">&#xe79b;同步</i>
        </button>
        上次同步时间：
        <span id="lastUpdateTime">[[${#strings.defaultString(updateTime,  '未同步')}]]</span>
    </div>
</script>

<!-- 列表右侧操作栏 -->
<!-- 注意id属性，列表初始化的时候加载本列表右侧工具栏-->
<script type="text/html" id="hr-staff-option">
    <a lay-event="sendMsg"><i class="layui-icon febs-edit-area febs-green" title="详情">发送消息</i></a>
</script>



<script data-th-inline="none" type="text/javascript">
    layui.use(['dropdown', 'jquery', 'form', 'table', 'febs'], function () {
        let $ = layui.jquery,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            // 定义页面视图
            $view = $('#hr-staff'),
            // 定义查询按钮
            $query = $view.find('#hr-staff-query-btn'),
            // 定义重置按钮
            $reset = $view.find('#hr-staff-reset-btn'),
            // 定义form表单
            $searchForm = $view.find('form'),
            // 定义表格排序
            sortObject = {field: 'id', type: null},
            tableIns;

        // 表单渲染
        form.render();

        // 调用列表初始化方法
        initTable();




        // 查询按钮点击事件
        $query.on('click', function () {
            // 获得页面检索条件
            let params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
            // 重新加载列表
            tableIns.reload({where: params, page: {curr: 1}});
        });

        // 重置按钮点击事件
        $reset.on('click', function () {
            // 清空表单信息
            $searchForm[0].reset();
            sortObject.type = 'null';
            // 重新加载表格数据
            tableIns.reload({where: getQueryParams(true), page: {curr: 1}, initSort: sortObject});
        });

        // 初始化数据表格
        function initTable() {
            tableIns = febs.table.init({
                // 当前视图的table
                elem: $view.find('table'),
                // 列表ID
                id: 'hr-staff-staff-table',
                // 访问路由
                url: ctx + 'staff/list',
                // 配置列表顶部工具栏
                toolbar: '#hr-staff-staff-toolbar',
                // 配置列表顶部右侧显示列过滤项
                defaultToolbar: ['filter'],
                // 表格渲染完毕后的回调
                done: function (res, curr, count) {
                    // 调整表格在页面占比
                    $("table").css("width", "100%");
                },
                width: "100%",
                // field属性为返回实体类中相关属性名，title为表格列头显示内容，minWidth为表格列最小宽度，maxWidth为表格列最大宽度
                cols: [[
                    {field: 'userId', title: '用户名', minWidth: 100,align:"center"},
                    {field: 'name', title: '姓名', minWidth: 80,align:"center"},
                    {field: 'alias', title: '别名', minWidth: 100,align:"center"},
                    {field: 'genderDetail', title: '性别', minWidth: 60,align:"center"},
                    {field: 'position', title: '职位', minWidth: 50,align:"center"},
                    {field: 'mobile', title: '手机', minWidth: 100,align:"center"},
                    {field: 'email', title: '邮箱', minWidth: 150,align:"center"},
                    {field: 'staffStatus', title: '状态', minWidth: 80,align:"center"},
                    {field: 'thumbAvatar', title: '头像', minWidth: 80,align:"center",templet:
                        function (res) {
                            return "<div><img src='"+res.thumbAvatar+"'></div>"
                        }
                    },
                    {field: 'lastModifyDate', title: '最后更新时间', minWidth: 250,align:"center",hide:true},
                    {field: 'openId', title: 'openid', minWidth: 250,align:"center",hide:true},
                    // 设置列表右侧操作栏staff-option为上方所配置工具栏ID
                    {title: '操作', minWidth: 130, toolbar: '#hr-staff-option'}
                ]]
            });
        }

        // 获得form表单中查询条件并格式化为JSON格式
        function getQueryParams(flag) {
            let params = $searchForm.serializeJson();
            return params;
        }


        //按回车搜索
        $(".layui-input").keyup(function (e) {
            //当按下按键时
            //.which属性判断按下的是哪个键，回车键的键位序号为13
            if (e.which == 13) {
                $query.click();
            }
        });

        var lastUpdateTime;

        // 同步按钮点击事件
        $view.on('click', '#hr-staff-fetch-btn', function (){
            var index = layer.load(0, {shade: false}); //0代表加载的风格，支持0-2
            $.ajax({
                type: 'get',
                url: 'staff/updateStaff',
                success: function (res) {
                    lastUpdateTime1 = res.data;
                    if (res.code === 200) {
                        layer.close(index);
                        $reset.click();
                        febs.alert.success("数据同步成功");
                        $("#lastUpdateTime").html(lastUpdateTime1);
                    } else {
                        // 显示错误信息
                        layer.close(index);
                        febs.alert.error("拉取数据失败");
                    }
                }
            })

        })

        // staffTable为上方table的ID属性，本方法用于执行列表右侧操作栏的具体实现
        table.on('tool(hr-staff-staff-table)', function (obj) {
            let data = obj.data, layEvent = obj.event;
            // detail为上方配置列表右侧操作栏的lay-event属性
            if (layEvent === 'sendMsg') {
                $.ajax({
                    type: 'get',
                    url: 'staff/sendMsg/'+ data.userId,
                    success: function (res) {
                        if (res.code === 200) {
                            febs.alert.success("发送成功");
                        } else {
                            febs.alert.error("发送失败");
                        }
                    }
                })
            }
        });
    })
</script>

<style>
    .layui-table-cell,layui-table-tool-panel li{
        height:auto;
        overflow:visible;
        text-overflow:inherit;
        white-space:normal;
        padding:0px 10px !important;
        line-height:24px;
        text-align: center;
    }
    .layui-table img {
        max-width: 50px;
    }
    /*设置数据表表头字体*/
    .layui-table th{
        /*表头内容居中显示*/
        text-align: center;
    }


</style>